/**
 * query参数处理方法
 * @param {*} data
 * @returns
 */
const valueRules = function (data) {
  if (data !== null && typeof data === "object") {
    // 数组则join, 对象则转为json
    return Array.isArray(data) ? data.join(",") : JSON.stringify(data);
  }
  return data;
};

export default {
  /**
   * object转query参数
   * @Params data 要处理的内容(键值对)
   * @Params type 是否需要问号
   */
  stringify(data, type = true) {
    const params = Object.keys(data).map((key) => {
      return `${key}=${valueRules(data[key])}`;
    });
    return `${type ? "?" : ""}${params.join("&")}`;
  },
  /**
   * query转object参数
   * @param {*} data
   */
  parse(data) {
    const params = {};
    if (data) {
      data.split("&").forEach((item) => {
        const [key, value] = item.split("=");
        params[key] = value;
      });
    }
    return params;
  },
};
